type TFileType = "File" | "Folder" | "Image" | "Video" | "Markdown";

/**
 * 文件树 数据结构
 * 每一个数据项 都拥有唯一的路径，不然会报错
 *  这里创建的每一项数据项，都会更新 id = path 操作
 *  请确保更新后的ID 保持与 path 一致，否则会报错
 *  /src
 *  /index.js
 *  /src/ttt.ts
 */
export interface IFileTreeItem {
  // 因为 WebContainer 文件系统不支持自定义属性，因ID应该是 WebContainer 中的 FileSystemTree 唯一的路径
  id: string; // 必须参数 - 唯一标识
  label: string; // 文件名/文件夹名（通过该字段，还能识别文件后缀）
  type: TFileType; // 文件类型
  content?: string | Uint8Array; // 文件内容
  children?: IFileTreeItem[]; // 子集 - 仅在文件夹下有效
  rename?: boolean; // 是否处于重命名状态
  isNew?: boolean; // 是否处于新建状态
}
